}
#endif
-#define TRC_VMX_VMEXIT 0x00040001
-#define TRC_VMX_VECTOR 0x00040002
-
asmlinkage void vmx_vmexit_handler(struct xen_regs regs)
{
unsigned int exit_reason, idtv_info_field;
__vmwrite(VM_ENTRY_INTR_INFO_FIELD, intr_fields);
__vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, regs.error_code);
ed->arch.arch_vmx.cpu_cr2 = va;
+ TRACE_3D(TRC_VMX_INT, ed->domain->id, TRAP_page_fault, va);
}
break;
}
#include <xen/mm.h>
#include <xen/lib.h>
#include <xen/errno.h>
+#include <xen/trace.h>
#include <asm/cpufeature.h>
#include <asm/processor.h>
__vmwrite(GUEST_INTERRUPTIBILITY_INFO, 0);
+ TRACE_2D(TRC_VMX_INT, d, highest_vector);
if (highest_vector == vpit->vector)
vpit->inject_point = NOW();
return -1;
return 0;
}
+
+#define TRC_VMX_VMEXIT 0x00040001
+#define TRC_VMX_VECTOR 0x00040002
+#define TRC_VMX_INT 0x00040003
+
#endif /* __ASM_X86_VMX_H__ */